﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BorisTheBlade
{
	/// <summary>
	/// Cодержит информацию о сводных фондовых индексах. 
	/// Для корректного обновления полей CurrentValue, Low и High 
	/// необходимо наличие поля Decimals в списке запрашиваемых полей (если этот список задается) таблицы INDEXES
	/// </summary>
	class WrapperIndexes
	{
		private string m_IndexBoard;
		/// <summary>
		/// Код режима торгов для ценных бумаг, участвующих в расчете индекса
		/// </summary>
		public string IndexBoard { get { return m_IndexBoard; } set { m_IndexBoard = value; } }
		
		private string m_IndexCode;
		/// <summary>
		/// Идентификатор биржевого индекса
		/// </summary>
		public string IndexCode { get { return m_IndexCode; } set { m_IndexCode = value; } }

		private string m_Name;
		/// <summary>
		/// Наименование индекса
		/// </summary>
		public string Name { get { return m_Name; } set { m_Name = value; } }

		private string m_ShortName;
		/// <summary>
		/// Краткое наименование индекса
		/// </summary>
		public string ShortName { get { return m_ShortName; } set { m_ShortName = value; } }
		
		private double m_CurrentValue;
		/// <summary>
		/// Текущее значение индекса
		/// </summary>
		public double CurrentValue { get { return m_CurrentValue; } set { m_CurrentValue = value; } }

		private double m_PrevClose;
		/// <summary>
		/// Последнее значение индекса предыдущего торгового дня
		/// </summary>
		public double PrevClose { get { return m_PrevClose; } set { m_PrevClose = value; } }

		private int m_Decimals;
		/// <summary>
		/// Количество десятичных знаков дробной части числа. Используется для форматирования значений полей с форматом PRICE
		/// </summary>
		public int Decimals { get { return m_Decimals; } set { m_Decimals = value; } }

		private double m_Low;
		/// <summary>
		/// Минимальное значение индекса за торговую сессию
		/// </summary>
		public double Low { get { return m_Low; } set { m_Low = value; } }

		private double m_High;
		/// <summary>
		/// Максимальное значение индекса за торговую сессию
		/// </summary>
		public double High { get { return m_High; } set { m_High = value; } }

		private DateTime m_Time;
		/// <summary>
		/// Время последнего изменения индекса
		/// </summary>
		public DateTime Time { get { return m_Time; } set { m_Time = value; } }

		private double m_UsdRate;
		/// <summary>
		/// Курс доллара на момент последнего изменения индекса
		/// </summary>
		public double UsdRate { get { return m_UsdRate; } set { m_UsdRate = value; } }

	}
}
